package com.sihai.ehr.service;

import com.sihai.core.Limit;
import com.sihai.core.LimitedList;
import com.sihai.core.Sorter;
import com.sihai.ehr.model.biz.JobSpecification;
import com.sihai.ehr.model.biz.JobSpecificationAuditing;
import com.sihai.ehr.model.biz.JobSpecificationProject;
import com.sihai.ehr.model.sys.AuditStatus;
import com.sihai.ehr.web.pojo.JobSpecificationPojo;

import java.util.List;

/**
 * @author: xiao
 * @since: 12-6-9 上午9:25
 *
 * 工作说明书Service
 */
public interface JobSpecificationService {
    JobSpecification get(Long id);

    void save(JobSpecification jobSpecification);

    LimitedList<JobSpecification> findByDuty(Long id, Limit limit, Sorter sorter);

    void remove(String jobSpecificationIds);

    LimitedList<JobSpecificationPojo> findByOrganization(Long organizationId, Limit limit, Sorter sorter);

    List<JobSpecificationProject> getProjects(Long id);

    LimitedList<JobSpecification> findByOrganizationAndStatus(Long organizationId, AuditStatus[] status, Limit limit, Sorter sorter);

    List<List<JobSpecificationAuditing>> findJobSpecificationAuditing(Long id);

    JobSpecificationProject getProject(Long id);

    void saveProject(JobSpecificationProject project);

    void removeProject(Long id);

    //创建一个工作流程
    void saveJobSpecificationAuditingProcess(JobSpecification jobSpecification);
}
